package br.com.dallas.parametro.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;

import br.com.dallas.parametro.javabean.ParametroBean;
import br.com.dallas.util.exception.GerarSequenceException;
import br.com.dallas.util.model.AbstractModel;

public class ParametroModel extends AbstractModel
{
	public ParametroModel(Connection conexao)
	{
		super(conexao);
	}

	@Override
	protected String getSQLInsercao()
	{	
		return null;
	}

	@Override
	protected void carregarParametrosInsercao(final Object objeto, final PreparedStatement ps) throws SQLException, GerarSequenceException
	{
		
	}

	@Override
	protected String getSQLAlteracao()
	{
		StringBuffer sb = new StringBuffer();
		sb.append("update parametro_web                              ");
		sb.append("   set parametro_web.atualizacao_tela = ?         ");
		sb.append("     , parametro_web.altera_data_padrao = ?       ");
		sb.append("     , parametro_web.quantidade_linha_tabela = ?  ");
		sb.append("     , parametro_web.quantidade_via_impressao = ?  ");
		sb.append("where parametro_web.id = 1                        ");
		return sb.toString();
	}

	@Override
	protected void carregarParametrosAlteracao(final Object objeto, final PreparedStatement ps) throws SQLException
	{
		if (objeto instanceof ParametroBean)
		{
			ParametroBean parametroBean = (ParametroBean) objeto;
			ps.setInt(1, parametroBean.getAtualizacaoTela());
			ps.setInt(2, parametroBean.getAlteraDataPadrao());
			ps.setInt(3, parametroBean.getQuantidadeLinhaTabela());
			ps.setInt(4, parametroBean.getQuantidadeViaImpressao());
		}
	}

	@Override
	protected String getSQLDeletar()
	{
		return null;
	}

	@Override
	protected void carregarParametrosDeletar(final Object objeto, final PreparedStatement ps) throws SQLException
	{	
		
	}

	@Override
	protected String getSQlConsulta(final Object objeto)
	{
		StringBuffer sb = new StringBuffer();
		sb.append("select                                        ");
		sb.append("       parametro_web.id                       ");
		sb.append("     , parametro_web.atualizacao_tela         ");
		sb.append("     , parametro_web.altera_data_padrao       ");
		sb.append("     , parametro_web.quantidade_linha_tabela  ");
		sb.append("     , parametro_web.quantidade_via_impressao ");
		sb.append("  from parametro_web                          ");
		sb.append(" where parametro_web.id = 1                   ");
		return sb.toString();
	}

	@Override
	protected void carregarParametroConsulta(final Object objeto, final PreparedStatement ps) throws SQLException
	{
		
	}

	@Override
	protected void resultadoConsulta(final Object objeto, final ResultSet rs) throws SQLException
	{
		if (objeto instanceof ParametroBean)
		{
			ParametroBean parametroBean = (ParametroBean) objeto;
			parametroBean.setId(rs.getLong("id"));
			parametroBean.setAtualizacaoTela(rs.getInt("atualizacao_tela"));
			parametroBean.setAlteraDataPadrao(rs.getInt("altera_data_padrao"));
			parametroBean.setQuantidadeLinhaTabela(rs.getInt("quantidade_linha_tabela"));
			parametroBean.setQuantidadeViaImpressao(rs.getInt("quantidade_via_impressao"));
		}
	}

	@Override
	protected Object getObject()
	{	
		return null;
	}

	@SuppressWarnings("rawtypes")
	@Override
	protected void setCollectionObject(final Object objeto, final Collection collVo)
	{
		
	}

}
